负库存 内容 概述 负库存 算法总结 概述 本节专心考虑负库存场景。 1. 负库存,匹配发票-入库-采购单,导致发票数量不等于采购数量。 https://groups.google.com/d/msg/idempiere/1jBPgcQn714/-pvWGVElCQAJ 2. 产品类别即使计价方式不同,但是还是有冲突。标准计价允许负库存,移动计价不允许负库存。 https://groups.google.com/d/msg/idempiere/wlRqyYXYt3w/sBB6_IaDtm4J 负库存 定义:账面数据少于实物数据。 优点:业务方便(但不严谨)。 缺点:物料价格和成本异常,管理混乱。 原因: 1、盘盈未登帐。 2、先卖后买(贸易行业;石油行业月底投入+月底产出;寄售制)。 3、业务延迟(入库晚于出库;入库集中登帐;前台业务系统未传回服务器;), 4、打单差错(2种物品当1种物品接受入库或者出库;计量单位错误;退货不及时下架而被销售)。 5、赠品销售(赠品数量不准) 6、单位换算、出入计量产生实物多于账面(这是我唯一觉得允许负库存的场景实例) 对策: 1、仅限标准成本,业务部门月底平库不允许负库存,财务禁止负库存结转。(及时盘库、及时冻结组件数量,条件成熟及时平帐) 2、如果非要移动平均,一旦出库造成负库存,必须马上核算出库价格和存货成本(提前确定对应的那笔入库价格) 负库存导致价格负数问题,主要是后到的采购入库金额一定要填满上次负数出库金额。因为采购成本肯定低于出库成本,如果只填平数量,库存总额肯定是负数,且无法平均计算。 负库存导致的负价格 负库存调整算法:从左到右分别是大于0,等于0,小于0 负库存修正试算 算法总结 1. 正库存时采购入库时,移动平均价格:= (当前库存总额+入库单价*入库数量)/(当前数量+入库数量) 2. 负库存时采购入库时,如果 : 2.1 入库数量+当前数量<0 (上图例子NO4.1) 修正值 =(当前结存价格 - 本次入库价格)* 入库数量 (10-7)*5=15 移动平均价格 =(当前库存总额+入库单价*入库数量+修正值)/(当前数量+入库数量) 10 入库后库存总额 = 当前库存总额+入库单价*入库数量 -70+7*5 =-35 2.2 入库数量+当前数量=0 (上图例子NO4.2) 修正值 = (当前结存价格 - 本次入库价格)* 入库数量 (10-8)*7=14 移动平均价格 = 本次入库价格 8 入库后库存总额 = 当前库存总额+入库单价*入库数量 -70+8*7 =-14 2.3 入库数量+当前数量>0 (上图例子NO4.3) 修正值 = (本次入库价格 - 当前结存价格)* 当前数量 (7-10)*(-7)=21 移动平均价格 = (当前库存总额+入库单价*入库数量+修正值)/(当前数量+入库数量) 7 入库后库存总额 = 当前库存总额+入库单价*入库数量 -70+7*12 = 14 很奇怪,无论采购价格和采购数量怎么变化,<0时计算结果总是当前平均价格(结存价格10,确实符合实情),>0时计算结果总是等于采购价格 (不多不少,看起来也很符合实情)。 那是不是可以不用公式了,直接取上次平均价格或者本次采购价格? SAP是这么做的。 ”在这种情况下收货时,系统不完全直接按照采购订单价格计入存货价值,而是先按照负库存时的移动平均价先补齐负库存,与采购价格差异计入采购价差科目,直到补为零之后才开始按照采购价格计入存货价值。“ idempiere算法